package student.aistar.day15.pool;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * 节省内存
 * 可缓存线程池, 先查看池中有没有以前建立的线程
 * 如果有, 就直接使用, 如果没有, 就见一个新的线程加入池中
 * 缓存行池子通常用于执行一些生命周期很短的异步型任务
 */
public class CacheThreadPoolDemo {
    public static void main(String[] args) {
        ExecutorService executorService = Executors.newCachedThreadPool();

        //创建一个大量的线程对象 - 占内存
//        for (int i = 0; i < 20; i++){
//            new Thread(() ->{
//                System.out.println(Thread.currentThread().getName());
//            }).start();
//        }

        for(int i = 0; i < 20; i++){
            executorService.submit(() -> {
                System.out.println(Thread.currentThread().getName());
            });
        }
        executorService.shutdown();
    }
}
